// Number.isFinite
// let a;
// // 正数
// a = Number.isFinite(6);
// console.log(`正数:${a}`) //true
// // 小数
// a = Number.isFinite(.5);
// console.log(`小数:${a}`) //true
// // 负数
// a = Number.isFinite(-6);
// console.log(`负数:${a}`) //true
// // 字符串
// a = Number.isFinite('6');
// console.log(`字符串:${a}`) //false
// // nan
// a = Number.isFinite(NaN);
// console.log(`nan:${a}`) //false
// // undefined
// a = Number.isFinite(undefined);
// console.log(`undefined:${a}`) //false
// // 无穷数
// a = Number.isFinite(Infinity);
// console.log(`无穷数:${a}`) //false
// // 无限循环小数
// a = Number.isFinite(1/3);
// console.log(`无限循环小数:${a}`)  //true 
// // bool值
// a = Number.isFinite(true);
// console.log(`bool:${a}`) //false

// Number.isNaN
// let a = Number.isNaN(NaN) // true
// let b = Number.isNaN("NaN") // false
// console.log(a,b)


// 与传统方法的区别   传统方法对字符串也会显示true 新方法更严谨。

// let a1 = isFinite(25) // true
// let a2 = isFinite("25") // true
// let b1 = Number.isFinite(25) // true
// let b2 = Number.isFinite("25") // false
// console.log(a1,a2,b1,b2)

// let c1 = isNaN(NaN) // true
// let c2 = isNaN("NaN") // true
// let d1 = Number.isNaN(NaN) // true
// let d2 = Number.isNaN("NaN") // false
// console.log(c1,c2,d1,d2)


// Number.isInteger()
// let a = Number.isInteger(25.000); //true
// let a1 = Number.isInteger(25);//true
// let a2 = Number.isInteger(25.002);//false
// let a3 = Number.isInteger(25.0000000000000003);//true
// console.log(a,a1,a2,a3);

// Number.EPSILON
// function demo(x,y){
//     return x - y < Number.EPSILON
// }
// // console.log(Number.EPSILON)
// console.log(demo(0.100000001+0.3,.4)) //fasle
// console.log(demo(0.100000000000000001+0.3,.4)) //true

// Math.trunc()
// console.log(Math.trunc(1.65666));        //1
// console.log(Math.trunc(-1.3));          //-1
// console.log(Math.trunc(1.2));           //1
// console.log(Math.trunc(3));             //3
// console.log(Math.trunc('3'));           //3
// console.log(Math.trunc(true));          //1
// console.log(Math.trunc(undefined));     //NaN
// console.log(Math.trunc('to'));          //NaN


// Math.sign()
// // 正数
// console.log(Math.sign(1.6))
// console.log(Math.sign(9999))
// console.log(Math.sign('4444'))
// console.log(Math.sign(33.33))
// console.log(Math.sign(.3))
// // 负数
// console.log(Math.sign(-1.6))
// console.log(Math.sign(-9999))
// console.log(Math.sign('-4444'))
// console.log(Math.sign(-33.33))
// console.log(Math.sign(-.3))
// // 0
// console.log(Math.sign(0))
// console.log(Math.sign(-0))
// console.log(Math.sign('0'))
// // 其他
// console.log(Math.sign(undefined))
// console.log(Math.sign('to'))

// Math.cbrt()
// console.log(Math.cbrt(1))       //1
// console.log(Math.cbrt(8))       //2
// console.log(Math.cbrt(27))      //3

// Math.hypot()
// console.log(Math.hypot(3,4))        // 3*3 + 4*4 = 5*5   5

// 指数运算符
// console.log(2 ** 3)         //8
// console.log(2 ** 4)         //16
// console.log(2 ** 2 ** 2)    // 2 ** (2 ** 2) => 2 ** 4 = 16